#ifndef EGG_DEBUGPRINT_H
#define EGG_DEBUGPRINT_H

#include "Base.h"

namespace egg{

    class DebugPrint{
    public:
		static void print(const vec2& value){
			cout<<value[0]<<" "<<value[1]<<endl;
		}

        static void print(const vec3& value){
            cout<<value[0]<<" "<<value[1]<<" "<<value[2]<<endl;
        }

        static void print(const vec4& value){
            cout<<value[0]<<" "<<value[1]<<" "<<value[2]<<" "<<value[3]<<endl;
        }

		static  void print(const mat2x3& value){
			vec3 col0=glm::column(value,0);
			print(col0);
			vec3 col1=glm::column(value,1);
			print(col1);
		}

		static void print(const mat2& value){
			vec2 col0=glm::column(value,0);
			print(col0);
			vec2 col1=glm::column(value,1);
			print(col1);
		}

        static void print(const mat4& value){
            vec4 col0=glm::column(value,0);
            print(col0);
            vec4 col1=glm::column(value,1);
            print(col1);
            vec4 col2=glm::column(value,2);
            print(col2);
            vec4 col3=glm::column(value,3);
            print(col3);
        }
    };
}

#endif